#! /usr/bin/env python
"""
    这是控制两个线程的管理器，这里提供了两个队列作为临界资源和线程通信
    同时在这里创建两个线程，决定其是否开始运行

    由于两个进程作为守护进程，是从最一开始就一直运行的，直到程序结束之后才停止，因此可以
    在该对象被创建的时候开始运行，在该对象被销毁的时候停止运行（可以不考虑），之后该对象
    暴露在外的接口就是updateArm和updateCar两个，用来更新指令
"""
from time import sleep
from queue import Queue
import sys
sys.path.append("/home/galm/ms_01/src/motion_parser/scripts/manualThreads")
from manualThreads.armThread import ArmThread
from manualThreads.carThread import CarThread
from manualThreads.shootCmd import ShootCmd

class ManualThreadManager():

    def __init__(self):
        #创建两个队列，用于线程之间通信
        self.armQueue = Queue(5)
        self.carQueue = Queue(5)
        #这里应该添加线程初始化和开始运行的代码
        armThread = ArmThread(self.armQueue)
        carThread = CarThread(self.carQueue) 
        self.shootCmd = ShootCmd()
        sleep(1)
        armThread.start()
        carThread.start()
        '''
            
        '''

    def updateArm(self,cmd):
        #这里将信息写入队列
        self.armQueue.put(cmd)

    def updateCar(self,cmd):
        #这里将信息写入队列
        self.carQueue.put(cmd)

    def updateShoot(self,cmd):
        self.shootCmd.shootPublish(cmd)


    



